/**
 * @Author: wuzhiying
 * @Date: 2020-07-24 11:48:09
 * @Last Modified by: wuzhiying
 * @Last Modified time: 2020-07-24 11:48:09
 */
import allMpRouter from '@/router/allMpRouter'
import small from '@/smallapp/small'

//  获取?后面的参数
export function getQueryParams(locationUrl) {
    var url = "";
    if (locationUrl) {
        if (locationUrl.split("?")) {
            url = '?' + locationUrl.split("?")[1]; //获取url中"?"符后的字串
        } else {
            url = location.search; //获取url中"?"符后的字串
        }
        if (typeof url === 'string') {
            var theRequest = new Object();
            if (url.indexOf("?") != -1) {
                var str = url.substr(1);
                var strs = str.split("&");
                for (var i = 0; i < strs.length; i++) {
                    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]) || 0;
                }
            }
            return theRequest;
        }
    }
}

// 跳转后台返回的链接 
export function openPage(_link, type) {
    // console.log('link', _link)
    // TODO 小程序对接拍对直播直接跳转
    if(_link.indexOf('/live/index.html#/liveList')>=0){
            if (small.globalData.isPdZb == 1) {
                wx.redirectTo({
                    url: `/goods/pages/pdzb/index?type=jump&targeturl=${encodeURIComponent('/pdzb')}`
                    // url: `/goods/pages/pdzbShare/index?type=jump&targeturl=${encodeURIComponent('/pdzb-share')}`
                })
            } else {
                // this.$Error('当前版本暂未对接拍对直播')
                wx.showToast({
                    icon: 'none',
                    title: '当前版本暂未对接拍对直播'
                })
            }
    }

    // _link的格式需要满足类似 "/mb/item/item-list?sid=6&pid=14662" 这种格式 
    let link_arr = _link.split('?')[0].split('/')
    let last_link = link_arr[link_arr.length - 1]
    // TODO 如果路径是/shop/home 则替换成index
    last_link == 'home' ? last_link = 'index' : ''
        // 跳转页面是首页时 使用wx.reLaunch会关闭所有页面
        if (last_link == 'index') {
            wx.reLaunch({
                url: `/pages/shopIndex/index?type=jump&targeturl=${encodeURIComponent('/index')}`
            })
            return false
        }
        // 对四级目录单独处理 
        if (_link.indexOf('/mycoupon/activity') > -1) {
            window.open('/exchange-coupon?'+ _link.split('?')[1])
            return false
        }
        // 小程序跳转单独处理
        for (let i = 0, l = allMpRouter.routes.length; i < l; i++) {
            if (('/' + last_link) === allMpRouter.routes[i]) {
                // 和allRoutes里面的路由匹配成功则跳转 需要带上_link里面?后面的参数
                const pages = getCurrentPages()
                // 当打开页面数量为9个时 采用href跳转
                if (pages.length == 9) {
                    window.location.href = allMpRouter.routes[i] + '?' + _link.split('?')[1]
                    break;
                }
                if (type) {
                    // console.log(2222)
                    // console.log(allMpRouter.routes[i] + '?' + _link.split('?')[1])
                    // 如果传了type 则用href跳转
                    window.location.href = allMpRouter.routes[i] + '?' + _link.split('?')[1]
                } else {
                    // console.log(3333)
                    // console.log(allMpRouter.routes[i] + '?' + _link.split('?')[1])
                    // 默认是新开页面
                    window.open(allMpRouter.routes[i] + '?' + _link.split('?')[1])
                }
                break;
            }
        }

}

//替代reload刷新当前页面，将data恢复到初始状态
export function refreshPage(that) {
    Object.assign(that.$data, that.$options.data())
}

/**
 * 小程序分享 一般放在mounted里面 如果shareInfo里面的参数是通过请求接口得到的 则需要放在接口返回里面
 * 分享朋友圈只分享当前页面，不分享其他页面路径
 * openMessage：是否开启发送给好友
 * openTimeLine: 是否开启发送朋友圈 
 * mpPath: 小程序路径
 * shareInfo: 分享的相关信息 注：shareInfo里面的shareParam不要包含type和targeturl
 * mpRoute: 小程序路由(定义在mpRouter.js里面的路径)
 */
export function mpShare(openMessage, openTimeLine, mpPath, shareInfo, mpRoute,callback) {
        // TODO 小程序分享
        let menus = []
        if (openMessage) {
            menus.push('shareAppMessage')
        }
        if (openTimeLine) {
            menus.push('shareTimeline')
        }
        wx.showShareMenu({
            withShareTicket: false,
            menus: menus
        });
        // 如果传入了mpRoute代表是当前页面分享跳转的是其他页面
        const _path = mpRoute ? (small.globalData.appApiUrl + mpRoute + '?' + shareInfo.shareParam) : location.href
        if (openMessage) {
            window.onShareAppMessage = () => {
                // 调用分享的回调
                callback && callback()
                // 当页面被转发时会进入这个回调
                // 返回一个对象，作为小程序处理转发的参数，对象内容和小程序页面 onShareAppMessage 回调可返回对象内容基本一致，具体可参考官方文档：https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareAppMessage-Object-object
                return {
                    title: shareInfo.title,
                    // eg `/activity/pages/giftDetail/index?type=open&targeturl=${encodeURIComponent(https://m.wfx.wxfenxiao.com/item-detail&mpType=2&id=1)}`
                    // eg `/activity/pages/giftDetail/index?type=open&targeturl=${encodeURIComponent(location.href)&mpType=2&id=1}`
                    miniprogramPath: `${mpPath}?type=open&targeturl=${encodeURIComponent(_path)}&${shareInfo.shareParam}`, // 如果需要分享原始小程序页面路由，可传递此参数
                    imageUrl: shareInfo.imgUrl
                }
            }
        }
        if (openTimeLine) {
            window.onShareTimeline = () => {
                // 调用分享的回调
                callback && callback()
                
                // 当页面被分享朋友圈时会进入这个回调
                // 返回一个对象，作为小程序处理分享朋友圈的参数，对象内容和小程序页面 onShareTimeline 回调可返回对象内容基本一致，具体可参考官方文档：https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareTimeline
                return {
                    title: shareInfo.title,
                    // query: shareInfo.shareParam, // 这里的 query 是页面 url 中的 search 参数，而不是小程序路由中的参数
                    miniprogramQuery: `type=open&targeturl=${encodeURIComponent(_path)}&${shareInfo.shareParam}`, // 如果需要分享原始小程序页面路由参数，可传递此参数
                    imageUrl: shareInfo.imgUrl
                }
            }
        }
    
}

// 去除富文本中的font-family
export function removeFontFamily(content){
	//remove repeat
	var unique = function(arr) {
	    var result = [], hash = {};
	    for (var i = 0, elem; (elem = arr[i]) != null; i++) {
	        if (!hash[elem]) {
	            result.push(elem);
	            hash[elem] = true;
	        }
	    }
	    return result;
	}
    var arr = content.match(/(font-family:[^><;"]*(;)?)/ig);
    // console.log(arr,'arr content')
    if (!arr) {
        return content
    }
    arr = unique(arr);
    // console.log(arr,'font arr')
	for(var i=0;i<arr.length;i++){ 
		var reg = new RegExp(arr[i], "ig");
		content = content.replace(reg,"");
    }
	return content;
}